PHP Gallery
PHP Gallery is a free php image script.
Goth and Gore Gifts
Shop right now or else!
Evil gear
Christmas is almost here
Sell your soul
Believeth in me an hath everlasting life

here are some of the best and useful php scripts and snippets to help in your projects. Php displayed below. Use the search for specific script lookups. Click the category links to view scripts in Javascript and cgi. To add your own script click the link and add your useful script example.

encoding and decoding base64 strings url data
get data encoding

<?php
$string 
'data';

$encoded strtr(base64_encode(addslashes(gzcompress(serialize($string),9))), '+/=''-_,');

 
$stringunserialize(gzuncompress(stripslashes(base64_decode(strtr($encoded'-_,''+/=')))));

?>
There is an error on the example of passing an array through an HTML Form.

In the line:
$array = unserialize(base64_decode($coded_array);

There is a ')' missing. it should be:
$array = unserialize(base64_decode($coded_array));

I had to send a php array trough a FORM in HTML, and came up with this solution:

<?
$array
[] = array("foo""bar");
$coded_array base64_encode(serialize($array));
?>

now u can put the $coded_array into an input field or even a GET link ex:

<a href="some_script.php?coded_array=<?=$coded_array;?>">script link</a>

after receiving it in the script you send it to, do the following:

<?
$coded_array 
$_GET["coded_array"]     // or $_POST off course
$array unserialize(base64_decode($coded_array));
?>


Just a minor tweak of massimos functions.

<?
$data 
str_replace(array('+','/','='),array('-','_','.'),$data);
//replace '=' with '.' instead of with nothing, that way the process is reversible.  '.' is uri-safe according to http://www.w3.org/Addressing/URL/5_URI_BNF.html
?>
up
down
0
massimo dot scamarcia at gmail dot com
6 years ago
$data = str_replace(array('+','/','='),array('-','_',),$data); // MIME::Base64::URLSafe implementation
      
$data = str_replace(array('+','/'),array('-','_'),$data); // Python raise "TypeError: Incorrect padding" if you remove "=" chars when decoding
?>


////////////////////////////////////////////////////////////////////
I omitted the strtr functions in my examples.  Here are corrected functions:

<?php

function makeCksum() {
       
$str "";
       for (
$i=0;$i<32;++$i)
               
$str .= chr(rand(32,126));
       
$_SESSION['Cksum'] = $str;
}

function 
encode($x) {
    return 
strtr(base64_encode(substr($_SESSION['Cksum'],rand(0,28),4) . $x), '+/=''-_~');
}

function 
decode($x) {
    
$y base64_decode(strtr($x'-_~''+/='));
    if (
strpos($_SESSION['Cksum'],substr($y,0,4)) === false) return false;
    return 
substr($y,4-strlen($y));
}
?>
I have another solution that is simple and elegant.  Create a pseudorandom string of characters.  Then, each time you want to obfuscate your key, append a random substring from the pseudorandom string and use base64 encoding.  When you want to de-obfuscate, convert back from base64.  If the prefix is not in your pseudorandom source, then the value is forged.  Otherwise, strip the prefix and recover your original key.

The advantages are that the string will look different even for the same key, and encoding and decoding should be extremely fast.

Heres an example:

<?php

// Call makeCksum once upon landing on the homepage
function makeCksum() {
       
$str "";
       for (
$i=0;$i<32;++$i)
               
$str .= chr(rand(32,126));
       
$_SESSION['Cksum'] = $str;
}

function 
encode($x) {
    return 
base64_encode(substr($_SESSION['Cksum'],rand(0,28),4) . $x);
}

function 
decode($x) {
    
$y base64_decode($x);
    if (
strpos($_SESSION['Cksum'],substr($y,0,4)) === false) return false;
    return 
substr($y,4-strlen($y));
}
?>
//////////////////////////////////


Add your comment.













No comments yet

Search ScriptsnTips


Php JavaScripts CGI/Perl